package com.itany.corejava.code08_常用类.日期类;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author 石小俊
 * @date 2023年04月27日 16:45
 */
public class Test03_格式化日期 {
    public static void main(String[] args) throws ParseException {
        stringToDate();
    }

    public static void dateToString() {
        Date date = new Date();
        System.out.println(date);

        // 1.创建一个SimpleDateFormat对象
        // 由于调用的format方法属于父类方法,可以通过子类直接调用
        // SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
        // 开发中一般使用多态来表示
        // 将父类的引用指向子类的对象
        DateFormat df = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss:SSS E");
        // 2.将日期转换成指定格式的字符串
        String s = df.format(date);
        System.out.println(s);

        // 简写
        String s2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss").format(date);
        System.out.println(s2);
    }

    public static void stringToDate() throws ParseException {
        // 想要把一个字符串转换成日期,该字符串必须符合一定的格式
        // 字符串中必须包含日期相关的信息
        String s = "2023-04-27";
        // 1.创建一个SimpleDateFormat对象
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        // 2.将字符串转换成日期对象
        Date date = sdf.parse(s);
        System.out.println(date);

        // 简写方式
        Date date2 = new SimpleDateFormat("yyyy-MM-dd").parse(s);
        System.out.println(date2);
    }

}
